package com.m1.tzolkin.model.buildables;

import com.m1.tzolkin.model.ITZStock;
import com.m1.tzolkin.model.board.ITechBoard;
import com.m1.tzolkin.model.exceptions.CannotBuildException;
import com.m1.tzolkin.model.exceptions.NoAvailableSkullException;
import com.m1.tzolkin.model.exceptions.NotAvailableActionException;
import com.m1.tzolkin.model.exceptions.NotEnoughCornException;
import com.m1.tzolkin.model.exceptions.NotEnoughResourceException;
import com.m1.tzolkin.model.util.card.BuyableCard;

public abstract class Buildable extends BuyableCard<ITZStock> implements IBuildable {

	// CONSTRUCTEUR
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 8633399829398775291L;

	public Buildable(ITZStock c) {
		super(c);
	}
	
	// COMMANDES
	
	@Override
	public abstract void buy(ITechBoard b) throws NotEnoughCornException, NotEnoughResourceException, NoAvailableSkullException, NotAvailableActionException, CannotBuildException;

}
